package com.lwl.controller.sds;

import com.github.pagehelper.PageInfo;
import com.lwl.entity.LayData;
import com.lwl.entity.MyPage;
import com.lwl.entity.sds.TSdsRecord;
import com.lwl.entity.sds.SdsTongji1;
import com.lwl.entity.sds.SdsTongji2;
import com.lwl.service.sds.TSdsRecordService;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * (TSdsRecord)表控制层
 *
 * @author Lei
 * @since 2022-11-10 09:37:49
 */
@RestController
@RequestMapping("tSdsRecord")
public class TSdsRecordController {
    /**
     * 服务对象
     */
    @Autowired
    private TSdsRecordService tSdsRecordService;

    @GetMapping("queryAll")
    public LayData queryAll(MyPage myPage, TSdsRecord tSdsRecord){
        PageInfo pageInfo = tSdsRecordService.queryAll(myPage,tSdsRecord);
        return new LayData(pageInfo);
    }

    /**
     * 电话号的唯一性检验：每个电话号只能用一次
     * @return
     */
    @GetMapping("checkRecord")
    public LayData checkRecord(TSdsRecord tSdsRecord){
        TSdsRecord tSdsRecord1 = tSdsRecordService.checkRecord(tSdsRecord);
        return new LayData(tSdsRecord1);
    }

    /**
     * 添加做题记录到数据库
     */
    @PostMapping("addRecord")
    public LayData addRecord(TSdsRecord tSdsRecord){
        int insert = tSdsRecordService.insertRecord(tSdsRecord);
        return new LayData(insert);
    }

    /**
     *  展示用户的详细做题记录（题目以及对应的答案）
     * @return
     */
    @GetMapping("recordDetails/{id}")
    public LayData recordDetails(@PathVariable Integer id,MyPage myPage){
        PageInfo pageInfo = tSdsRecordService.getRecordDetails(myPage,id);
        return  new LayData(pageInfo);
    }

    @GetMapping("statistics2")
    public LayData getStatistics2(MyPage myPage, SdsTongji2 sdsTongji2){
        PageInfo pageInfo = tSdsRecordService.getStatistics2(myPage,sdsTongji2);
        return new LayData(pageInfo);
    }

    @GetMapping("statistics1")
    public LayData getStatistics1(){
        List<SdsTongji1> sdsTongji1List = tSdsRecordService.getStatistics1();
        return new LayData(sdsTongji1List);
    }

    /**
     * 回访时根据用户ID检验用户心理特点判断是否需要回访
     * @param id
     * @return
     */
    @PostMapping("queryByTestId")
    public LayData queryByTestId(Integer id){
//        先检查一遍该id是否已经被回访过了，如果已经回访过，则不能再次添加回访
        boolean IdStatus = tSdsRecordService.checkId(id);
//        如果查到了返回的就是false，那么！false时返回一个失败的结果
        if (IdStatus==false){
            System.out.println("有这个用户的回访记录了");
            LayData layData = new LayData();
            layData.setMsg("已经有该用户的回访记录了");
            layData.setData(false);
            return layData;
        }else {
            boolean status = tSdsRecordService.queryByTestId(id);
            return new LayData(status);
        }
    }

}
